package com.doudou.collection.dao.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doudou.collection.orm.dto.user.update.UserDetailDTO;
import com.doudou.collection.orm.entity.UserDetail;
import com.doudou.collection.orm.vo.UserDetailFansAndFollowVO;
import com.doudou.collection.orm.vo.UserDetailStandardVO;
import com.doudou.collection.orm.vo.UserSimpleVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * className: UserDetailMapper<br>
 * description: 用户详情持久层模块<br>
 * author: 李浩文<br>
 * date: 2023/6/15 14:47<br>
 * version: 1.0<br>
 */
@Repository
public interface UserDetailMapper extends BaseMapper<UserDetail> {


    int update(UserDetail userDetail);

    /**
     * 通过id查询用户粉丝列表
     * @param id 当前登录用户id
     * @return List<UserSimpleVO>
     */
    List<UserSimpleVO> selectFansListById(Long id);

    /**
     * 通过id查询用户关注列表
     * @param id 当前登录用户id
     * @return List<UserSimpleVO>
     */
    List<UserSimpleVO> selectFollowListById(Long id);

    /**
     * 通过id查询用户粉丝数量
     * @param id 当前登录用户id
     * @return UserDetailFansAndFollowVO
     */
    UserDetailFansAndFollowVO selectFansCountById(Long id);

    /**
     * 通过id查询用关注丝数量
     * @param id 当前登录用户id
     * @return UserDetailFansAndFollowVO
     */
    UserDetailFansAndFollowVO selectFollowsCountById(Long id);

    /**
     * 通过id查询用户详细信息
     * @param id 当前登录用户id
     * @return 用户详情id
     */
    UserDetailStandardVO getStandardById(Long id);
}
